package br.ufscar.acumaaf.smc.activity;


import br.ufscar.acumaaf.smc.R;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;

public class GerenciaMonitoramento extends Activity{
	
	//Intervalos de Coleta de Dados
	private String[] intervalo = new String[]{"Monitoramento Constante","Monitoramento a cada 1 minuto","Monitoramento a cada 5 minutos","Monitoramento a cada 10 minutos","Monitoramento a cada 20 minutos","Monitoramento a cada 30 minutos"};
	//Número de Participantes
	private String[] participantes = new String[]{"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40"};
	
	private ProgressDialog dialog;
	
	private int intervaloSelecionado;
	private int numeroParticipantes;
	private int codigoSessao;
	private int codigoGrupoAtividadeFisica;
	
	public void onCreate(Bundle b){
		super.onCreate(b);
		setContentView(R.layout.gerencia_monitoramento);
		final Spinner spinnerIntervalo = (Spinner) findViewById(R.id.gerencia_monitoramento_spinner_valor_intervalo_coleta_dados);
		ArrayAdapter<String> adaptadorIntervalo = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,intervalo);
		adaptadorIntervalo.setDropDownViewResource(android.R.layout.simple_spinner_item);
		spinnerIntervalo.setAdapter(adaptadorIntervalo);
		final Spinner spinnerParticipantes = (Spinner) findViewById(R.id.gerencia_monitoramento_spinner_valor_numero_participantes);
		ArrayAdapter<String> adaptadorParticipantes = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,participantes);
		adaptadorParticipantes.setDropDownViewResource(android.R.layout.simple_spinner_item);
		spinnerParticipantes.setAdapter(adaptadorParticipantes);
		Bundle extras = getIntent().getExtras();
		//Recupera o parâmetro passado pela Activity GerenciaAtividadeFisica
		if(extras != null){
			codigoSessao = extras.getInt("codigosessao");
			codigoGrupoAtividadeFisica = extras.getInt("codigogrupoatividadefisica");
		}
		
		spinnerIntervalo.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){

			@Override
			public void onItemSelected(AdapterView<?> parent, View v, int posicao, long id) {	
				switch (posicao) {
				case 0:
					intervaloSelecionado = 0;
					break;
				case 1:
					intervaloSelecionado = 1;
					break;
				case 2:
					intervaloSelecionado = 5;
					break;
				case 3:
					intervaloSelecionado = 10;
					break;
				case 4:
					intervaloSelecionado = 20;
					break;
				case 5:
					intervaloSelecionado = 30;
					break;
				default:
					break;
				}
			}

			@Override
			public void onNothingSelected(AdapterView<?> parent) {
			}
		});
		
		spinnerParticipantes.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){

			@Override
			public void onItemSelected(AdapterView<?> parent, View v, int posicao, long id) {	
				numeroParticipantes = posicao + 1;
			}

			@Override
			public void onNothingSelected(AdapterView<?> parent) {
			}
		});
		
		Button botaoMonitorar = (Button) findViewById(R.id.gerencia_monitoramento_botao_monitorar);
		botaoMonitorar.setOnClickListener(new Button.OnClickListener(){
			public void onClick(View v){
//				Log.i("smc","GerenciaMonitoramento:Monitorar - intervalo     = " + intervaloSelecionado);
//				Log.i("smc","GerenciaMonitoramento:Monitorar - participantes = " + numeroParticipantes);
				
				dialog = ProgressDialog.show(GerenciaMonitoramento.this, "Monitorando", "Gernado dados do Monitoramento", true,true);
				
				
				//Inciando o Serviço Gerador de Dados do Monitoramento
				Intent it = new Intent("INICIAR_SERVICO_MONITORAMENTO_GERADOR_DADOSESSAO");
				it.putExtra("intervaloColeta", intervaloSelecionado);
				it.putExtra("numeroParticipantes", numeroParticipantes);
				it.putExtra("codigosessao", codigoSessao);
				it.putExtra("codigogrupoatividadefisica", codigoGrupoAtividadeFisica);
				startService(it);
				
				dialog.setOnCancelListener(new ProgressDialog.OnCancelListener(){
					@Override
					public void onCancel(DialogInterface dialog) {
						//Parando o Serviço Gerador de Dados do Monitoramento
						stopService(new Intent("INICIAR_SERVICO_MONITORAMENTO_GERADOR_DADOSESSAO"));
					}});
			}
		});
	}
	
	protected void onDestroy(){
		super.onDestroy();
	}
}
